let { typesModels } = require('./models/typesModels.js');
const mongoose = require('mongoose');
//新增保险分类
module.exports.addTypes = async function (types) {
    // console.log(333,types);
    return await typesModels.create(types)
}

//获取产品分类列表数据  分页
module.exports.getTypes = async function ({pageSize,currentPage}) {
    //获取总条数
    let total=await typesModels.countDocuments();
    let types=await typesModels 

    .find()
    .limit(pageSize - 0)  //设置请求数据的条数
    .skip((currentPage - 1) * pageSize ) //设置跳过数据的条数
    return{
        total,types
    }
}

//搜索
module.exports.searchTypes= async function ({pageSize=3,currentPage=1,selectValue,input}) {
    // console.log(333,cons);
    // let {selectValue,input}=cons
    // return await typesModels.find({[selectValue]:{$regex:input,$options:'$i'} })
   
    //获取总页数
    let total=await typesModels.countDocuments({
        //模糊查询
        [ selectValue]:{$regex:input,$options:'$i'}
    });
     //获取总条数
    let types=await typesModels 

    .find({
         //模糊查询
       [ selectValue]:{$regex:input,$options:'$i'}
    })
    .limit(pageSize - 0)  //设置请求数据的条数
    .skip((currentPage - 1) * pageSize ) //设置跳过数据的条数

return{
    total,types
}
}

//获取点击删除时，产品分类下是否还有数据
module.exports.getTypesId = async function (_id) {
    console.log(333, _id);
    const data = await typesModels
        .aggregate([
            {
                $lookup: {
                    from: 'insures',
                    localField: '_id',
                    foreignField: 'typesId',
                    as: 'insuresData'
                },
            },
            {
                $match: {
                    _id: mongoose.Types.ObjectId(_id._id)
                }
            }
        ])
    console.log(333,data);
    return data;
}

//根据ID删除指定产品分类
module.exports.deleteTypesId = async function ({ _id }) {
    // 删除数据库里的数据
    return await typesModels.deleteOne({ _id })   
}


//修改指定产品的数据
module.exports.modifyTypes = async function (types) {
   
    let { _id, typesName } = types
    return await typesModels.updateOne({ _id }, { typesName })
}